Virtual memory and cache are both implemented in a similar manner in the memory hierarchy. However, each serves a slightly different purpose to enhance the capabilities of the main memory.
Cache
- helps increase the effective access time of the main memory
Virtual Memory
- extends the main memory address space
- allows for concurrency of processes